#  引入合适的模块
import matplotlib.pyplot as plt
import cv2 as cv
from skimage import io

img = io.imread('red_mark.jpeg')  # 读入RGB图:  red_mark.jpeg

#  构建一个3个子图的画板,  长15,  宽6
fg, ax = plt.subplots(1, 3, figsize=(15, 6))

ax[0].imshow(img)  # 在第一个子图显示原图

#  得到红色标记掩模
avg = cv.imread('red_mark.jpeg', 0)  # 1.  得到均值灰度图

r = img[:, :, 0]  # 2.  得到红色通道灰度图

mask = (r > avg * 1.5) & (r > 200)  # 3.  得到红色主导色掩模  mask(严格系数为1.3，且大于200)

ax[1].imshow(mask, cmap='gray')  # 4.  在子图2显示掩模

img1 = io.imread('red_mark.jpeg')
img1[mask] = [255, 255, 255]  # 把红色标记部分变成白色的

ax[2].imshow(img1)  # 在子图3显示(大部分)去除红色标记后原图

#  调整子图位置
#  以最紧凑模式把plt.show()对应内容保存显示内容到  out.png
plt.tight_layout()
plt.savefig('out.png', bbox_inches='tight')
plt.show()
